using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos;
using Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.ServiceImplementation.Translator;

namespace Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.ServiceImplementation
{
    /// <summary>
    /// Classe de implementacao de contrato de servico "Versao2".
    /// </summary>
    [ServiceBehavior(Name = "Versao", Namespace = "http://www.bovespa.com.br/Versao/ServiceContracts/2010/08")]
    public class Versao : Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.IVersao
    {
        #region IVersao Members

        public List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao> ConsultarVersao()
        {
            Negocio.Versao negocio = new Negocio.Versao();
            return new TradutorVersao().Traduzir(negocio.ConsultarVersao());
        }

        public Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao ObterVersao(int codigoProduto, int codigoVersao)
        {
            Negocio.Versao negocio = new Negocio.Versao();
            return new TradutorVersao().Traduzir(negocio.ObterVersao(codigoProduto, codigoVersao));
        }

        public List<Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao> ConsultarVersaoPorProduto(int codigoProduto)
        {
            Negocio.Versao negocio = new Negocio.Versao();
            return new TradutorVersao().Traduzir(negocio.ConsultarVersaoPorProduto(codigoProduto));
        }

        public void InserirVersao(Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao entrada)
        {
            Negocio.Versao negocio = new Negocio.Versao();
            negocio.InserirVersao(new TradutorVersao().Traduzir(entrada));
        }

        public void ExcluirVersao(int codigoProduto, int codigoVersao)
        {
            Negocio.Versao negocio = new Negocio.Versao();
            negocio.ExcluirVersao(codigoProduto, codigoVersao);
        }

        public void AtualizarVersao(Bovespa.Sinacor.Servico.BaseConhecimento.Versao.Servicos.Contratos.Versao entrada)
        {
            Negocio.Versao negocio = new Negocio.Versao();
            negocio.AtualizarVersao(new TradutorVersao().Traduzir(entrada));
        }

        #endregion
    }
}
